Split mergeability checks by priority When a project config is updated or a change is merged, all open changes on an entire project or branch need to be rechecked for mergeability. For projects or branches with lots of open changes, this can flood the queue with potentially slow checks. This will block simpler cases, such as checking mergeability of a single change during ReceiveCommits. Define a new Priority enum on the MergeabilityChecksExecutor so we can split the queue based on priority, allowing smaller, interactive changes such as pushes to not wait for the entire queued backlog. Change-Id: I57f9eb33dbbcd8a560adfe4458ce48d7b0817957
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt index 6acb2d6..36b0e31 100644 --- a/Documentation/config-gerrit.txt +++ b/Documentation/config-gerrit.txt
@@ -823,6 +823,15 @@ + Default is 1. +[[changeMerge.interactiveThreadPoolSize]]changeMerge.interactiveThreadPoolSize:: ++ +Maximum size of the thread pool in which the mergeability flag of open +changes is updated, when processing interactive user requests (e.g. +pushes to refs/for/*). Set to 0 or negative to share the pool for +background mergeability checks. ++ +Default is 1. + [[commentlink]] === Section commentlink